package com.plian.system.service.pf;

import com.plian.system.entity.pf.AppraisalIndex;
import com.plian.system.entity.pf.BasePerformanceEffect;
import com.plian.system.model.ListResult;
import com.plian.system.mybatis.base.BaseService;
import com.plian.system.mybatis.support.Query;
import com.plian.system.vo.pf.BasePerformanceEffectVO;
import com.plian.system.vo.pf.ScoreMethodVO;

import java.util.List;
import java.util.Set;

public interface IPerformanceScoreService extends BaseService<BasePerformanceEffect> {

    boolean submit(BasePerformanceEffect basePerformanceEffect);

    BasePerformanceEffectVO getDetailObj(BasePerformanceEffect basePerformanceEffect);

    /**
     * @Author: Take-off
     * @Description: //TODO 获取所有评分
     * @Date: 3:52 PM 2023/1/29
     * @Param: [year]
     * @return: java.util.List<com.plian.system.vo.pf.ScoreMethodVO>
     **/
    List<ScoreMethodVO> getAllScoreMethod(String year);

    /**
     * @Description: //TODO 获取后面三层指标
     * @Author: Take-off
     * @Date: 4:11 PM 2023/7/11
     * @Param: []
     * @return: java.util.List<com.plian.system.entity.pf.AppraisalIndex>
     **/
    List<AppraisalIndex> getLastThreeIndex();

    /**
     * @Author: Take-off
     * @Description: //TODO 根据处室获取考核内容
     * @Date: 3:56 PM 2023/1/29
     * @Param: [year, officeId]
     * @return: java.util.List<com.plian.system.vo.pf.ScoreMethodVO>
     **/
    List<ScoreMethodVO> getScoreMethodByOffice(String year,Long officeId);
    /**
     * @Author: Take-off
     * @Description: //TODO 查看版本
     * @Date: 3:56 PM 2023/1/29
     * @Param: [year, officeId]
     * @return: java.util.List<com.plian.system.vo.pf.ScoreMethodVO>
     **/
    ListResult<BasePerformanceEffectVO> versionList(Query query);

    /**
     * @Author: Take-off
     * @Description: //TODO 获取所有责任处室
     * @Date: 3:44 PM 2023/1/31
     * @Param: [year]
     * @return: java.util.List<java.lang.Long>
     **/
    Set<Long> getAllScoreOffice(String year);

    String checkYear(BasePerformanceEffect basePerformanceEffect);
}
